use core::fmt::{Display, Formatter};
use derive_builder::Builder;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;

use crate::error::Error;
use crate::modeling::Value;

pub use crate::channel::{HttpMethod, HttpRequest, HttpResponse};

#[derive(Debug, Default, Serialize, Deserialize, Clone, PartialEq)]
pub struct HttpRequestOptions {
    pub model: Option<String>,
    pub local_file: Option<String>,
    pub extensions: Option<HashMap<String, String>>,
}

impl HttpRequestOptions {
    pub fn new() -> anyhow::Result<Self> {
        Ok(Self {
            model: None,
            extensions: None,
            local_file: None,
        })
    }
}
